/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package util;

import java.io.Serializable;
import java.util.Vector;

/**
 *
 * @author Ruben
 */
public class Algoritmo implements Serializable{
    
    private static final long serialVersionUID = -7671589143020226785L;

    Vector instrucciones;
    int dirInicio;
    

    public Algoritmo() {
        instrucciones = new Vector();
        dirInicio = 0;
    }

    public boolean equals(Object obj) {

        if (obj instanceof Algoritmo) {
            Algoritmo algori = (Algoritmo) obj;

            return (this.dirInicio == algori.dirInicio && this.instrucciones.equals(algori.instrucciones));
        }
        return false;
    }

    public void insertar() {

        instrucciones.add(null);
    }

    public void insertar(Instruccion i) {
        System.out.println("Insertar instruccion");

        instrucciones.add(i);
    }

    public void insertar(int ubica, Instruccion i) {
        System.out.println("Set ubicacion");

        instrucciones.set(ubica, i);
    }

    public void insertar(int salto) {
        System.out.println("Insertar salto");
        Integer sal = new Integer(salto);
        instrucciones.add(sal);
    }

    public void insertar(int ubica, int salto) {
        System.out.println("Insertar ubicacion y salto");
        Integer sal = new Integer(salto);
        instrucciones.set(ubica, sal);
    }

    public void setDirInicio(int dirIni) {
        dirInicio = dirIni;
    }

    public int getDirInicio() {
        return dirInicio;
    }

    public int getProgp() {
        return instrucciones.size();
    }

    public Object getElementoAt(int ubica) {
        return instrucciones.elementAt(ubica);
    }

    public Instruccion getInstruccionAt(int ubica) {
        return (Instruccion) getElementoAt(ubica);
    }

    public void Imprimir() {
        int size = instrucciones.size();
        System.out.println("Algoritmo con " + size + " instrucciones:");
        for (int i = 0; i < size; i++) {
            System.out.println(i + ": " + instrucciones.elementAt(i));
            //System.out.println(instrucciones.contains(i));
            
        }
        
    }
    public void recorrerInstrucciones(){
        int tamanio=instrucciones.size();
        
    }
}
